Multiple Input Multiple Output (MIMO) systems are being increasingly used in communication systems. A MIMO system includes multiple transmitting antennas and multiple receiving antennas which facilitates increased data rate as compared to single input single output systems.
FIG. 1 is a block diagram illustrating a MIMO system 100. The MIMO system 100 comprises a transmitter 102 and a receiver 104. The transmitter 102 includes modules including a bit scrambler 106, a channel encoder 108, a stream parser 110, and may include a plurality of interleavers 112a, 112b and 112c (which herein after will be referred to as 112), a plurality of constellation mappers 114a, 114b, and 114c (which herein after will be referred to as 114) and a plurality of transmitting antennas 116a, 116b, 116c (which herein after will be referred to as 116). A plurality of first RF units (not shown) may also be present between the plurality of constellation mappers 114 and the respective transmitting antennas 116. Each of the plurality of first RF units may include, for example, a Digital to Analog Convertor (DAC), an Analog Front End (AFE) and/or other functional units as is known in the art.
The receiver 104 includes modules including a bit descrambler 118, a channel decoder 120, a stream de-parser 122, and may include a plurality of de-interleavers 124a, 124b and 124c (which herein after will be referred to as 124), a soft output MIMO decoder 126 and a plurality of receiving antennas 128a, 128b, and 128c (which herein after will be referred to as 128).
The modules of the transmitter 102 and the modules of the receiver 104 shown in FIG. 1 may be implemented in hardware, software or a combination thereof.
In operation at the transmitter 102, an input bit stream is scrambled at the bit scrambler 106 and passed through the channel encoder 108. The channel encoder 108 may be, for example, a convolution coder or any other error correcting coder.
The coded input bit stream is passed from the channel encoder 108 to the stream parser 110 which distributes the coded input bit stream into a plurality of streams. The distribution of bits may be done, for example, in a round robin fashion. Each stream of the plurality of streams is passed through a respective one of the interleavers 112. Each stream after passing through one of the interleavers 112 is inputted to the respective constellation mapper 114. Each of the constellation mappers 114 maps the respective bit stream into symbols (which are referred to herein as “values”). A transmit vector representing the set of symbols (or “values”) for each of the plurality of transmitting antennas 116 is converted in to an analog signal by a Digital to Analog converter and fed to the RF unit (not shown) and transmitted over a MIMO channel 130 by the plurality of transmitting antennas 116.
The receiver 104 receives the transmitted analog signal (corresponding to the transmit vector multiplied by a channel matrix H which represents the effect of the MIMO channel 130 on the transmit vector as it is transmitted over the MIMO channel 130) through the plurality of receiving antennas 128. A plurality of second RF units (not shown) may be connected to the plurality of receiving antennas 128. In order to convert the received analog signal into a digital signal each of the plurality of second RF units may be followed by an Analog to Digital Convertor (ADC).
In an example of the MIMO system 100, if the transmit vector, consisting of symbols from all the transmit antennas, is represented by “t”, the channel matrix is represented by “H”, and the system noise is represented by the vector v, then a received vector “y” received at the receiver 104 is represented as:y=Ht+v  (1)
Each element hi,j of the channel matrix, H, may denote a channel gain between the ith transmitting antenna 116 and the jth receiving antenna 128. The soft output MIMO decoder 126 decodes the set of symbols (outputted by the plurality of second RF units) into soft bits. The soft bits are de-interleaved by the respective de-interleavers 124 (124a, 124b, and 124c). The output of the de-interleavers 124 may be deparsed into a single bitstream by the stream de-parser 122. The output of the stream de-parser 122 is decoded at the channel decoder 120 and may be de-scrambled by the bit de-scrambler 118, and is provided as an output of the receiver 104.
For decoding the multiple coded streams of symbols at the receiver 104 into soft bits, highly complex algorithms may be utilized, such as a Maximum Likelihood (ML) algorithm. The complexity of the decoding algorithm and the amount of hardware used (owing to multiple antennas) increases the cost of implementing a MIMO system. Existing techniques, such as the ML technique, offer solutions for decoding the set of symbols that have a high performance (e.g. a low bit-error rate (BER)), but require a large number of computations. Other techniques, such as a Zero Forcing (ZF) technique, have lower complexity, but have poor performance (e.g. a high BER) compared to the ML technique.